package app.maker.metier.stock.intf;

import java.util.List;

import javax.ejb.Remote;

import app.maker.entity.Entrepot;
import app.maker.entity.Fournisseur;
import app.maker.entity.Produit;
import app.maker.error.EntrepotException;
import app.maker.error.FournisseurException;
import app.maker.error.ProduitException;

@Remote
public interface IGestionProduit {

	public void ajoutProduit(Produit produit) throws ProduitException, FournisseurException;
	
	public void ajouterProduitDansEntrepot(Produit produit, Entrepot entrepot) throws ProduitException, EntrepotException;
	
	public void supprimeProduit(Produit produit, Entrepot entrepot) throws ProduitException, EntrepotException;
	
	public void supprimeProduitDansEntrepots(Produit produit) throws ProduitException;
	
	public Produit rechercherProduits(Entrepot entrepot, int idProduit) throws ProduitException;
	
	public List<Produit> getAllProduits(List<Entrepot> listeEntrepot);
	
	public Entrepot rechercherEntrepot(int idEntrepot) throws EntrepotException;
	
	public List<Entrepot> getAllEntrepots();
	
	public void ajouterEntrepot(Entrepot entrepot) throws EntrepotException;
	
	public void supprimerEntrepot(Entrepot entrepot) throws EntrepotException;
	
	public void ajouterFournisseur(Fournisseur fournisseur) throws FournisseurException;
	
	public void supprimerFournisseur(Fournisseur fournisseur) throws FournisseurException;
	
	public void miseAJourFournisseur(Fournisseur fournisseur) throws FournisseurException;
	
	public Fournisseur rechercherFournisseur(int idFournisseur) throws FournisseurException;
	
	public List<Fournisseur> rechercherFournisseur(String nomFournisseur) throws FournisseurException;

}
